<?php
// 应用公共文件
use Firebase\JWT\JWT;

function signToken($user_id, $userinfo)
{
    $key = '!@#$%*&';         //这里是自定义的一个随机字串，应该写在config文件中的，解密时也会用，相当于加密中常用的
    $token = array(
        "iss" => $key,        //签发者 可以为空
        "user_id" => $user_id,          //面象的用户，可以为空
        "iat" => time(),      //签发时间
        "nbf" => time(),    //在什么时候jwt开始生效  （这里表示生成100秒后才生效）
        "exp" => time() + 7200, //token 过期时间
        "data" => [           //记录的userid的信息，这里是自已添加上去的，如果有其它信息，可以再添加数组的键值对
            "userinfo" => $userinfo
        ]
    );
    //  print_r($token);
    $jwt = JWT::encode($token, $key, "HS256");  //根据参数生成了 token
    return $jwt;
}

function getClientIp($type = 0)
{
    $type = $type ? 1 : 0;
    static $ip = NULL;
    if ($ip !== NULL) return $ip[$type];
//    if ($_SERVER['HTTP_X_REAL_IP']) {//nginx 代理模式下，获取客户端真实IP
//        $ip = $_SERVER['HTTP_X_REAL_IP'];
//    } else
    if (isset($_SERVER['HTTP_CLIENT_IP'])) {//客户端的ip
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {//浏览当前页面的用户计算机的网关
        $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        $pos = array_search('unknown', $arr);
        if (false !== $pos) unset($arr[$pos]);
        $ip = trim($arr[0]);
    } elseif (isset($_SERVER['REMOTE_ADDR'])) {
        $ip = $_SERVER['REMOTE_ADDR'];//浏览当前页面的用户计算机的ip地址
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    // IP地址合法验证
    $long = sprintf("%u", ip2long($ip));
    $ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
    return $ip[$type];
}

function getIpAddress($ip)
{
    require_once 'curl.func.php';
    $appkey = 'f0a76d04ea803c58';//你的appkey
    $url = "https://api.jisuapi.com/ip/location?appkey=$appkey&ip=$ip";
    $result = curlOpen($url, ['ssl' => true]);
    $jsonarr = json_decode($result, true);
    $result = $jsonarr['result'];
    $address = "";
    if ($jsonarr["status"] == 0){
        if (!empty($result["country"])) {
            $address .= $result["country"];
        }
        if (!empty($result["province"])) {
            $address .= $result["province"];
        }
        if (!empty($result["city"])) {
            $address .= $result["city"];
        }
        if (!empty($result["town"])) {
            $address .= $result["town"];
        }
    }
    return $address;
}
function hashpassword($password){
    return md5(md5('sibada'.$password.'wms'));
}